Cerrado. Esta pregunta no cumple con las pautas de Stack Overflow. Actualmente no acepta respuestas. ¿Quieres mejorar esta pregunta? Actualice la pregunta para que esté relacionada con el tema de Stack Overflow. Cerrado hace 4 años. Mejora esta pregunta Estoy creando una aplicación Shiny que procesa varios archivos de texto seleccionados por un usuario. La salida es un marco de datos enorme con millones de filas y decenas de columnas. Ahora estoy interesado en permitir que un usuario filtre filas de forma interactiva, seleccione columnas y resuma columnas (eligiendo de una lista de funciones como media, sd, max, min, sum, etc.). El resultado sería un marco de datos más pequeño que resume los datos por selección de usuario; básicamente, necesito crear una GUI que implemente una funcionalidad básica de la biblioteca dplyr. En general, sé cómo hacerlo creando manualmente un montón de elementos GUI e introduciéndolos en una función de servidor con varios comandos dplyr. Dado que esta parece ser una funcionalidad bastante estándar (GUI que filtra y resume un marco de datos), antes de comenzar a construirlo desde cero, me pregunto si hay algo "disponible" que pueda usar TAL CUAL o como punto de partida .
2021-02-22 08:14:51
Sé que dijiste que rpivotTable no era exactamente lo que buscas, pero creo que se puede configurar para hacer parte del trabajo pesado, Aquí hay un ejemplo (usando rpivotTable para la manipulación, DT para mostrar el data.frame, rvest para analizar el innerHTML del DOM, podría haber un mejor formato de datos para pasar el objeto de la tabla desde el lado del cliente, pero esta es una prueba de concepto ): ui.R biblioteca (brillante) biblioteca (DT) biblioteca (rpivotTable) Página completa <- fluidPage ( DT :: dataTableOutput ('aSummaryTable'), rpivotTableOutput ('RESULTADOS') ) Página completa servidor.R: biblioteca (brillante) biblioteca (rpivotTable) biblioteca (DT) biblioteca (rvest) función (entrada, salida, sesión) { # Haga algunos datos de muestra qbdata <- reactivo ({ expand.grid (LETRAS, 1: 3) }) # Limpiar el html y almacenar como reactivo summarydf <- eventReactive (input $ myData, { entrada $ myData%>% read_html%>% html_table (fill = TRUE)%>% # Resulta que hay dos tablas en una rpivotTable, queremos la segunda . [[2]] }) # mostrar df como DT :: tabla de datos salida $ aSummaryTable <- DT :: renderDataTable ({ tabla de datos (resumendf (), nombres de fila = FALSO) }) # Siempre que se actualice la configuración, vuelva a llamar con el contenido de la tabla salida $ RESULTS <- renderRpivotTable ({ rpivotTable ( qbdata (), onRefresh = htmlwidgets :: JS ("función (config) { Shiny.onInputChange ('myData', document.getElementById ('RESULTADOS'). InnerHTML); } ") ) }) } | No es la respuesta que estás buscando? Lea otras preguntas en las etiquetas r dplyr shiny o plantee su propia pregunta.